---
title: Zep
---

**ZepTools** enable an Agent to interact with a Zep memory system, providing capabilities to store, retrieve, and search memory data associated with user sessions.

## Prerequisites

The ZepTools require the `zep-cloud` Python package and a Zep API key.

```shell
pip install zep-cloud
```

```shell
export ZEP_API_KEY=your_api_key
```

## Example

The following example demonstrates how to create an agent with access to Zep memory:

```python cookbook/tools/zep_tools.py
import time

from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.zep import ZepTools

# Initialize the ZepTools
zep_tools = ZepTools(user_id="agno", session_id="agno-session", add_instructions=True)

# Initialize the Agent
agent = Agent(
    model=OpenAIChat(),
    tools=[zep_tools],
    dependencies={"memory": zep_tools.get_zep_memory(memory_type="context")},
    add_dependencies_to_context=True,
)

# Interact with the Agent so that it can learn about the user
agent.print_response("My name is John Billings")
agent.print_response("I live in NYC")
agent.print_response("I'm going to a concert tomorrow")

# Allow the memories to sync with Zep database
time.sleep(10)

# Refresh the context
agent.context["memory"] = zep_tools.get_zep_memory(memory_type="context")

# Ask the Agent about the user
agent.print_response("What do you know about me?")
```

## Toolkit Params

| Parameter                | Type     | Default | Description                                           |
| ------------------------ | -------- | ------- | ----------------------------------------------------- |
| `session_id`             | `str`    | `None`  | Optional session ID. Auto-generated if not provided.  |
| `user_id`                | `str`    | `None`  | Optional user ID. Auto-generated if not provided.     |
| `api_key`                | `str`    | `None`  | Zep API key. If not provided, uses ZEP_API_KEY env var. |
| `ignore_assistant_messages` | `bool` | `False` | Whether to ignore assistant messages when adding to memory. |
| `enable_add_zep_message`        | `bool`   | `True`  | Add a message to the current Zep session memory.        |
| `enable_get_zep_memory`         | `bool`   | `True`  | Retrieve memory for the current Zep session.       |
| `enable_search_zep_memory`      | `bool`   | `True`  | Search the Zep memory store for relevant information.   |
| `instructions`           | `str`    | `None`  | Custom instructions for using the Zep tools.          |
| `add_instructions`       | `bool`   | `False` | Whether to add default instructions.                  |

## Toolkit Functions

| Function | Description |
| -------- | ----------- |
| `add_zep_message` | Adds a message to the current Zep session memory. Takes `role` (str) for the message sender and `content` (str) for the message text. Returns a confirmation or error message. |
| `get_zep_memory` | Retrieves memory for the current Zep session. Takes optional `memory_type` (str) parameter with options "context" (default), "summary", or "messages". Returns the requested memory content or an error. |
| `search_zep_memory` | Searches the Zep memory store for relevant information. Takes `query` (str) to find relevant facts and optional `search_scope` (str) parameter with options "messages" (default) or "summary". Returns search results or an error message. |

## Async Toolkit

The `ZepAsyncTools` class extends the `ZepTools` class and provides asynchronous versions of the toolkit functions.



## Developer Resources

- View [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/zep.py)
- View [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/tools/zep_tools.py)
- View [Async Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/tools/zep_async_tools.py)


